import { Controller, Get, Param, Query } from '@nestjs/common';
import { StoreService } from './store.service';
import { Response } from 'src/common/utils';
import { FuzzyLoacation } from './dto/fuzzyLocation';
import { LocationQuery } from './dto/locationQuery';

@Controller('store')
export class StoreController {
  constructor(private storeService: StoreService) {}

  /**
   * 根据坐标获取最近的门店
   */
  @Get('nearestStore')
  getNearestStore(@Query() query: LocationQuery) {
    const { longitude, latitude } = query;
    return this.storeService.getNearestStoreByLocation(longitude, latitude);
  }

  /**
   * 没有获取到用户的精准坐标，使用模糊位置查询，以及用户搜索的内容综合进行排序
   * @param query
   */
  @Get('getStoreList')
  getStoreList(@Query() query: FuzzyLoacation) {
    return this.storeService.getStoreList(query);
  }

  /**
   * 没有获取到用户坐标，根据用户的ip大致或者位置并返回商店列表
   * 同时返回城市等模糊位置，作为调用getStroeList接口的参数
   * @param ip
   * @returns
   */
  @Get('getStroeListByIp')
  getStroeListByIp(@Query('ip') ip: string) {
    return Response.success().setData(ip);
  }

  /**
   * 根据门店的id获取门店的菜单
   * @param id
   * @returns
   */
  @Get('getFoodListByStoreId/:id')
  getFoodByStoreId(@Param('id') id: string) {
    return this.storeService.getFoodList(id);
  }
}
